package com.bw.controller;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.bw.service.ShopService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;
@RestController
public class ShopController {
    @Autowired
    ShopService shopService;
    //2：按品牌展示销售额排行   柱状图
    @RequestMapping("/brandMoney")
    public Object brandMoney(String nowDate){
        //        1.拿到数据库中的数据
        List<Map> list = shopService.brandMoney(nowDate);
//       2.传递大屏所需要的JSON数据
//        第一层
        JSONObject jsonObject = new JSONObject();
//        第二层
        jsonObject.put("status",0);
        jsonObject.put("msg","");
//        第三层
        JSONObject dataObject = new JSONObject();
//    第四层
//        数组
        JSONArray catArray = new JSONArray();
        //  第五层      放入y轴的值  多个值==》需要遍历 list
        for (Map map : list) {
            catArray.add(map.get("tmName")) ;
        }
//       第五层 放具体的值
        JSONArray serArray = new JSONArray();
//        第六层  对象
        JSONObject serObject = new JSONObject();
        serObject.put("name","各大品牌");
//        第七层  data数组
        JSONArray dataArray = new JSONArray();

        for (Map map : list) {
            dataArray.add(map.get("sales")) ;
        }
        serObject.put("data",dataArray);
        serArray.add(serObject);
        dataObject.put("categories",catArray);
        dataObject.put("series",serArray);
        jsonObject.put("data",dataObject);
        return jsonObject;
    };
    //按各品类展示销售占比 sql 环形
    @RequestMapping("/catMoney")
    public Object  catMoney(String nowDate){
        //        1.拿到数据库中的数据
        List<Map> list = shopService.catMoney(nowDate);
        //       2.传递大屏所需要的JSON数据
//        第一层
        JSONObject jsonObject = new JSONObject();
//        第二层
        jsonObject.put("status",0);
        jsonObject.put("msg","");
//        第三层 数组
        JSONArray dataArray = new JSONArray();
//     第四层
        for (Map map : list) {
            JSONObject dataObject = new JSONObject();
            dataObject.put("name",map.get("catName"));
            dataObject.put("value",map.get("zb"));
             dataArray.add(dataObject);
        }
        jsonObject.put("data",dataArray);


        return jsonObject;
    };
    //     1：按照省份展示总成交额指标 省份热力图
    @RequestMapping("/proMoney")
    public Object  proMoney(String nowDate){
//        1.拿到数据库中的数据
        List<Map> list = shopService.proMoney(nowDate);
//        2.返回大屏所需要的数据
        JSONObject jsonObject = new JSONObject();

        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONObject dataObject = new JSONObject();
        JSONArray mapArray = new JSONArray();
//        遍历list  拿到我们各个省份的名字和总成交额
        for (Map map : list) {
            JSONObject mapObject = new JSONObject();
            mapObject.put("name",map.get("proName"));
            mapObject.put("value",map.get("total"));
            mapArray.add(mapObject);
        }
        dataObject.put("mapData",mapArray);
        dataObject.put("valueName","总成交额");
        jsonObject.put("data",dataObject);
        return jsonObject;
    };
    @RequestMapping("/isNew")
    public  Object isNew(String nowDate){
//        1.那数据库数据
        List<Map> list = shopService.isNew(nowDate);//        2.返回大屏所需要的数据
        JSONObject jsonObject = new JSONObject();

        jsonObject.put("status",0);
        jsonObject.put("msg","");
//        第二层 data对象
        JSONObject dataObject = new JSONObject();
//        第三层  两个数组   "colArray   rowArray
//        3.1 列的数组
        JSONArray colArray = new JSONArray();
//        第一列
        JSONObject colObject = new JSONObject();
        colObject.put("name","新老用户标志");
        colObject.put("id","subsys");
        colArray.add(colObject);

//        第二列
        JSONObject colObject1 = new JSONObject();
        colObject1.put("name","用户人数");
        colObject1.put("id","module");
        colArray.add(colObject1);

        //        第二列
        JSONObject colObject2 = new JSONObject();
        colObject2.put("name","总访问次数");
        colObject2.put("id","business");
        colArray.add(colObject2);

        //        第二列
        JSONObject colObject3 = new JSONObject();
        colObject3.put("name","跳出率");
        colObject3.put("id","name");
        colArray.add(colObject3);
        //        第二列
        JSONObject colObject4 = new JSONObject();
        colObject4.put("name","平均在线时长");
        colObject4.put("id","value");
        colArray.add(colObject4);

        //        第二列
        JSONObject colObject5 = new JSONObject();
        colObject5.put("name","平均访问人数");
        colObject5.put("id","visit");
        colArray.add(colObject5);

//     3.2 行的数组  遍历
        JSONArray rowArray = new JSONArray();
        for (Map map : list) {
            JSONObject rowObject = new JSONObject();
            rowObject.put("subsys",map.get("new"));
            rowObject.put("module",map.get("userCount"));
            rowObject.put("business",map.get("totalCount"));
            rowObject.put("name",map.get("skip"));
            rowObject.put("value",map.get("avgTime"));
            rowObject.put("visit",map.get("avgPel"));
            rowArray.add(rowObject);
        }







        dataObject.put("columns",colArray);
        dataObject.put("rows",rowArray);
        jsonObject.put("data",dataObject);
        return jsonObject;
    }



}
